var $table;
var index;
var loadingIndex;
(function ($){
    $.extend({
        commons:{
          formToJson:function(){
              var param = {};
              var elements = $("#queryForm").serializeArray();
              for(var i=0;i<elements.length;i++){
                  var zjname = elements[i].name;
                  var zjvalue = elements[i].value;
                  param[zjname] = zjvalue;
              }
              return param;
          }
        },
        table:{
            // options参数是一个Json对象
            init:function(options){
                // bootstrapTable在指定的节点上创建表格
                // 所有的参数就是表格构建需要的内容
                // 如果在调用init方法时不传递tableid，默认就用table
                var tableId = 'table';
                if(options.tableId){
                    tableId = options.tableId;
                }
                var method = 'post';
                if(options.method){
                    method = options.method;
                }
                $table = $('#'+tableId);
                $table.bootstrapTable({
                    columns: options.columns,
                    url: options.url,
                    method: method,
                    sidePagination: 'server',// 服务端分页
                    responseHandler:function(res,jqXHR){
                        // res 获取到的分页对象
                        return {rows:res.result.list,total:res.result.total};
                    },
                    contentType:'application/x-www-form-urlencoded', // 默认application/json  post请求  json格式的字符串 请求参数@RequestBody
                    queryParams:function(params){
                        // offset 分页起始编号
                        // limit pageSize
                        // 通过offset和limit来计算pageNumber
                        var param={
                            pageSize: params.limit,
                            pageNumber: parseInt(params.offset/params.limit)+1
                        }
                        // 可以获取到form表单中的组件，将组件的name作为param的属性，将用户输入的值作为value
                        //
                       var formToJson = $.commons.formToJson();// 将form表单转为的json对象
                       // 为param添加formToJson中的属性
                        return $.extend(param,formToJson);
                    },
                    pagination: true, // 显示分页工具栏
                    locale: 'zh-CN',
                    // 当前是第几页
                    pageNumber: 1,
                    // 每页显示的条数
                    pageSize: 10,
                    // 可以让用户自定义每页显示的数据
                    pageList: [10,20,30,40],
                    // 显示刷新按钮
                    showRefresh: true,
                    // 切换显示方式
                    showToggle: true,
                    // 自定义显示列
                    showColumns: true,
                    // 全屏按钮
                    showFullscreen: true,
                    // 设置工具栏
                    toolbar: $("#toolbar")
                })
            },
            search:function(){
                // jquery对象 --存放表格的jquery对象
                $table.bootstrapTable('refresh');
            },
            reset:function(){
                document.getElementById("queryForm").reset();
                $.table.search();
            }
        },
        modal:{
            openWin:function(title,url,width,height){
                var mwidth='800px';
                var mheight = '400px';
                if(width){
                    mwidth = width;
                }
                if(height){
                    mheight = height;
                }
                index = layer.open({
                    type: 2,
                    content: url,
                    title: title,
                    area: [mwidth,mheight],
                    btn: ['保存','重置'],
                    yes: function(index,layero){
                        //获取子页面的iframe
                        console.info(index)
                        var iframe = window['layui-layer-iframe'+index];
                        iframe.save();
                        return false;
                    },
                    btn2: function(index,layero){
                        return true;
                    },
                    shift: 6,
                    maxmin: true,
                    fixed: false
                });
            }
        },
        operator:{
            post: function(url,data,callback){
                $.ajax({
                    url: url,
                    type: 'post',
                    dataType: 'json',
                    data: data,
                    beforeSend:function(XHR){
                        loadingIndex = layer.load(1, {shade: false});
                    },
                    success: function(ret){
                        // ret = responseEntity
                        // 允许用户自定义回调
                        if(typeof callback == 'function'){
                            callback(ret);
                            layer.close(loadingIndex);
                            return;
                        }
                        layer.close(loadingIndex);
                        if(ret.code==200){
                            layer.msg('保存成功',function(){
                                // 调用父页面中的刷新方法
                                parent.refresh();
                                // 关闭当前弹出层
                                parent.layer.close(parent.index);
                            })

                        }else{
                            layer.msg(ret.message);
                        }
                    }
                })
            },
            get: function(url,callback){
                $.ajax({
                    url: url,
                    type: 'get',
                    dataType: 'json',
                    beforeSend:function(XHR){
                       loadingIndex = layer.load(1, {shade: false});
                    },
                    success: function(ret){
                        // ret = responseEntity
                       if(typeof callback =='function'){
                           callback(ret);
                           layer.close(loadingIndex);
                       }
                       layer.close(loadingIndex);
                    }
                })
            },
            delete: function(url,callback){
                //Confirm
                layer.confirm('您确定需要删除信息吗？', function(){
                    // 确定时执行第一个回调
                    $.ajax({
                        url: url,
                        type: 'delete',
                        dataType: 'json',
                        beforeSend:function(XHR){
                            loadingIndex = layer.load(1, {shade: false});
                        },
                        success: function(ret){
                            // ret = responseEntity
                            layer.close(loadingIndex);
                            if(typeof callback =='function'){
                                callback(ret);
                                return;
                            }
                            if(ret.code==200){
                                layer.msg('保存成功',function(){
                                    // 调用父页面中的刷新方法
                                    $.table.search();
                                })
                            }

                        }
                    })
                });


            }
        }
    });
})(jQuery)